#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
typedef int HPDataType;
typedef struct Heap
{
	HPDataType* _a;
	int _size;
	int _capcity;
}Heap;
void HeapInit(Heap* php,HPDataType* a,int n);//堆的初始化
void HeapPush(Heap* php,HPDataType x);//插入数据
void HeapPop(Heap* php);//删除数据
HPDataType HeapTop(Heap* php);//获取堆顶元素
void HeapDestroy(Heap* php);//销毁堆
void Swap(HPDataType* n1, HPDataType* n2);//交换两个元素
void AdJustDown(HPDataType* a, int n, int root);//向下调整算法
void AdJustUp(HPDataType* a, int n, int root);//向上调整算法